package map;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class MapDemo2 {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("语文", 99);
        map.put("数学", 98);
        map.put("英语", 97);
        map.put("物理", 96);
        map.put("化学", 99);
        System.out.println(map);
        /*
        遍历所有的key
        Set<k> keySet()
        将当前Map中的所有key封装到Set集合形式返回
        */
        Set<String> keySet = map.keySet();
        for (String key : keySet) {
            System.out.println("key:" + key);
        }
        /*遍历每一组健值对
        Set<Entry> entrySet()
        就是将当前Map中所有的键值对以一个Entry实例表示，然后将所有的健值对以
        set集合返回
        Entry：条目
         */
        Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
        for (Map.Entry<String, Integer> entry : entrySet) {
            String key = entry.getKey();
            Integer value = entry.getValue();
            System.out.println("key:" + key + "value:" + value);
        }
        /*
        遍历所有的value
        Collection values()
        将当前Map中所有的value封装到Collection集合中
        */
        Collection<Integer> values = map.values();
        for (Integer value : values) {
            System.out.println("value:" + value);
        }
        /*
        JDK8之后，Java为集合和Map提供了基于lambda表达式的遍历方式
        forEach
         */
        //遍历集合
        //values.forEach(value-> System.out.println(value));
        values.forEach(System.out::println);
        //遍历Map
        map.forEach((key, value) -> System.out.println("key:" + key + "value:" + value));


    }
}


